package com.xugui.learn.alibaba.models;

import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel;
import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 用于对接阿里的大模型对话
 */
@Configuration
public class DashScopeModelConfig {

    @Value("${spring.ai.dashscope.api-key}")
    private String dashScopeApiKey;

    /**
     * 简单的一个阿里大模型
     *
     * @return 阿里大模型
     */
    @Bean
    public DashScopeChatModel getDashScopeChatModel() {
        DashScopeApi dashScopeApi = DashScopeApi.builder().apiKey(dashScopeApiKey).build();
        return DashScopeChatModel.builder()
                .dashScopeApi(dashScopeApi)
                .defaultOptions(
                        DashScopeChatOptions.builder()
                        .withModel("qwen-plus")  // 指定模型
                        .withTemperature(0.7)    // 控制随机性  值越高越有创造性
                        .withMaxToken(2000)      // 最大输出长度
                        .withTopP(0.9)           // 核采样参数  控制输出的多样性
                        .build()
                ).build();
    }
}
